package org.example.string;

public class AddBinary {
    /**
     * 给你两个二进制字符串 a 和 b ，以二进制字符串的形式返回它们的和。
     * 输入:a = "11", b = "1"
     * 输出："100"
     *
     * @param a
     * @param b
     * @return
     */
    public String addBinary(String a, String b) {
        StringBuffer ret = new StringBuffer();
        int cur1 = a.length()-1,cur2 = b.length()-1,t=0;
        while(cur1>=0 || cur2>=0 || t>0){
            if(cur1>=0) t+=a.charAt(cur1--)-'0';
            if(cur2>=0) t+=b.charAt(cur2--)-'0';
            ret.append((char)('0'+t%2));
            t/=2;
        }
        ret.reverse();
        return ret.toString();
    }
}
